Home » Timp Liber » Cum sa iti monitorizezi temperatura si sistemul de incalzire in casa? – Smart Nation

Cum sa iti monitorizezi temperatura si sistemul de incalzire in casa? – Smart Nation

Publicat: 16.09.2013
Scris de Constantin Craciun & Ionut Cotoi
Sistemele de incalzire existente in apartamentele si casele noastre in prezent necesita o atentie deosebita, mai ales iarna, cand este necesara ajustarea constanta a temperaturii pentru a avea parte de confortul dorit.
 
Nu ar fi interesant daca am concepe o automatizare care sa realizeze aceasta munca pentru noi, care sa fie usor controlabila si modificata la nevoie si sa se ajusteze pe sistemele de incalzire deja existente in casa noastra?
 
Noi spunem ca da. Si nu numai ca ne-ar ajuta din perspectiva confortului, dar am putea face chiar economie oprind incalzirea atunci cand ea nu este necesara sau supraincalzirea atunci cand temperatura de afara este deja mai ridicata.
 
Acest articol isi propune sa va ghideze pasii pentru a realiza aceasta automatizare usor si cu o investitie mult redusa, fata de achizionarea unei sistem dedicat cu o instalare complicata si functionalitati predefinite nemodificabile.
 
Teorie
 
Sa analizam putin datele de intrare si iesire cu care lucram. Avem o temperatura in casa pe care o putem masura prin plasarea unor senzori in fiecare camera sau macar in una in care dorim sa functioneze sistemul. De asemenea, exista un sistem de incalzire sub forma unor calorifere, aer conditionat sau incalzire centralizata, cu care putem modifica temperatura, de obicei, manual.
 
Algoritmul pe care il propunem ne ofera posibilitatea de a stabili niste reguli de control automat al temperaturii in camere si, mai important, acces prin Internet la aceste date si controlul de la distanta.
 
Pentru partea software vom folosi platforma www.devicehub.net,  iar pentru partea de hardware o combinatie intre placa de dezvoltare Arduino, senzori, modul de conectare Ethernet si sugestii in functie de tipul de sistem de incalzire pentru controlul lor.
 
Principalele facilitati oferite de Devicehub.net sunt: serviciul online de stocare a datelor si controlul aparatelor electronice de orice fel care se pot conecta la Internet. La baza functionarii platformei sta relatia dintre senzori (entitati care culeg date din lumea reala) si actuatori (componente electronice care executa actiuni in lumea reala si pot fi, de asemenea, controlabili din platforma online). Spre deosebire de alte platforme similare, care colecteaza datele de la senzori, Devicehub.net este singura de acest gen care permite controlul si supervizarea online a actuatorilor.
 
Platforma se adreseaza atat companiilor de orice tip, cat si pasionatilor de electronica si programare datorita extensibilitatii si posibilitatii de a conecta o gama uriasa de senzori si actuatori la ea. Orice industrie sau aplicatie in domeniul tehnologic poate beneficia de controlul si supervizarea aparatelor si proceselor, prin intermediul unor componente conectate la Devicehub.net.
 
Arduino este o placa electronica de dezvoltare open source, folosita atat de incepatori cat si de electronistii profesionisti, pentru realizarea rapida a prototipurilor electronice. Ea a aparut in anul 2005, datorita unor profesori italieni care au realizat-o pentru a putea preda mai usor cursurile de microcontrolere stundetilor. Pentru ca a avut sursele libere si a fost folosita cu succes in mediul universitar in toata Italia, a evoluat vertiginos in urmatorii ani, fiind utlizata atat pentru workshopuri si cursuri cat si la scara industriala in diverse aplicatii si subansamble.
 
Arduino este in esenta o placa de dezvoltare care contine un microcontroller care primeste date le analizeaza si ia decizii pe baza carora poate trimite date in functie de cum il programam. Pe langa acest microcontroller, placa mai contine doar un numar mic de componente necesare pentru partea de programare de pe un PC si partii de alimentare a circuitului.
 
Limbajul de programare folosit este C++, iar mediul de programare este descarcabil gratuit pe website-ul www.arduino.cc, unde se gasesc de asemenea si informatii despre modelele de Arduino si specificatiile lor.
 
In functie de modelul de placa aleasa aceasta contine un numar de pini digitali si unul de pini analogici, care sunt “intrarile” si “iesirile” placii noastre. Pinii digitali sunt folositi pentru a controla sau primi date de la aparate care au doua stari – oprit sau pornit, 0 sau 1, utili in cazul nostru pentru a opri sau porni sistemul de incalzire. Pinii analogici sunt folositi pentru a citi date de la senzori care ofera date nu doar cu doua stari, ci o multitudine de pozitii intermediare intre 0 si 1, foarte utili in cazul nostru in care dorim sa citim temperatura intr-o camera.
 
Practica
 
Odata stabilite aceste detalii teoretice, sa trecem la partea practica. Pentru strangerea de date de la senzori aveti nevoie de un cont care se poate face gratuit la http://devicehub.net/accounts/register/ .
 
Dupa ce ati facut contul, creati un nou proiect si adaugati un senzor si un actuator in el. Senzorul va fi folosit pentru a masura temperatura intr-o camera, iar actuatorul este un releu care poate comuta sistemul de incalzire.
 
 
Pe partea de hardware avem nevoie de o placa de dezvoltare Arduino, un modul ethernet DHT11 care contine un senzor de temperatura si unul de umiditate, un modul cu releu si un alimentator pentru sistemul nostru. Noi am folosit Arduino Pro Mini, pe care l-am programat cu un modul FTDI (dar se poate folosi cu succes si un Arduino UNO, care nu are nevoie de acest modul de programare), un modul ethernet cu cipul enc28j60 si un modul releu la 5v special pentru Arduino (la iesirea principala poate comanda orice aparat alimentat la 220v).
 
 
 
Conexiunile intre Arduino si module se fac in felul urmator :
 
ENCJ2860 – Arduino:
 
CS – 10
 
SI – 11
 
SO – 12
 
SCK – 13
 
VCC – 5V
 
GND – GND
 
DHT11 – Arduino:
 
S – 8
 
VCC – 5V
 
GND – GND
 
Releu – Arduino:
 
S – 9
 
VCC – 5V
 
GND – GND
 
Codul folosit pe Arduino este urmatorul:
 
(au fost folosite doua librarii: una pentru senzorul de temperatura DHT11, pe care o gasiti la  adresa – http://playground.arduino.cc/main/DHT11Lib – si una pentru modulul Ethernet, pe care o gasiti la adresa – https://github.com/jcw/ethercard, iar aceste librarii se plaseaza in directorul “libraries” din workspace-ul creat de Arduino la instalare).
 
De asemenea, nu uitati sa inlocuiti in codul de mai jos datele referitoare la id-ul proiectului, numele senzorilor, precum si api-key-ul specific contului vostru de pe devicehub.net .
 
#include
 
#include
 
dht11 DHT11;
 
#define DHT11PIN 8
 
// ethernet interface mac address, trebuie sa fie unica in reteaua dvs
 
static byte mymac[] = { 0×74,0×69,0×69,0x2D,0×30,0×31 };
 
byte Ethernet::buffer[700];
 
static uint32_t timer;
 
char website[] PROGMEM = “www.devicehub.net”;
 
int state = 48;
 
boolean automode = true;
 
int temp_dorita = 24;
 
// apelata cand interogarea este completa
 
static void my_callback (byte status, word off, word len) {
 
  Serial.println(“>>>”);
 
  Ethernet::buffer[off+300] = 0;
 
  state = *(const char*)(Ethernet::buffer + off + len – 1);
 
  if(state == 49){
 
    Serial.println(“auto mode on”);
 
    automode = true;
 
  }else if(state == 48){
 
    Serial.println(“automode off”);
 
    automode = false;
 
  }
 
}
 
void setup()
 
{
 
  pinMode(9, OUTPUT);
 
  Serial.begin(57600);
 
  if (ether.begin(sizeof Ethernet::buffer, mymac, 10) == 0)
 
    Serial.println( “Failed to access Ethernet controller”);
 
  if (!ether.dhcpSetup())
 
    Serial.println(“DHCP failed”);
 
  ether.printIp(“IP:  “, ether.myip);
 
  ether.printIp(“GW:  “, ether.gwip);
 
  ether.printIp(“DNS: “, ether.dnsip);
 
  if (!ether.dnsLookup(website))
 
    Serial.println(“DNS failed”);
 
  ether.printIp(“SRV: “, ether.hisip);
 
  digitalWrite(9, HIGH);
 
}
 
void loop()
 
{
 
  ether.packetLoop(ether.packetReceive());
 
  if (millis() > timer) {
 
    int chk = DHT11.read(DHT11PIN);
 
    char queryString[256] = {0};
 
    sprintf(queryString, “?apiKey=copiati_api_key_aici&copiati_numele_senzor1_aici=%d&copiati_numele_senzor2_aici=%d”, (int)DHT11.temperature,(int)DHT11.humidity);
 
    timer = millis() + 5000;
 
    Serial.println();
 
    Serial.print(“
 
    ether.browseUrl(PSTR(“/io/copiati_idul_proiectului_aici/”), queryString, website, my_callback);
 
  }
 
  if(automode == true){
 
    if ((int)DHT11.temperature
 
        //actuator ON
 
        Serial.println(“actuator ON”);
 
        digitalWrite(9, HIGH);
 
      }else{
 
        //actuator OFF
 
        Serial.println(“actuator OFF”);
 
        digitalWrite(9, LOW);
 
    }
 
  }
 
}
 
  //Celsius to Fahrenheit conversion
 
double Fahrenheit(double celsius)
 
{
 
  return 1.8 * celsius + 32;
 
}
 
//Celsius to Kelvin conversion
 
double Kelvin(double celsius)
 
{
 
  return celsius + 273.15;
 
}
 
// dewPoint function NOAA
 
// reference: http://wahiduddin.net/calc/density_algorithms.htm
 
double dewPoint(double celsius, double humidity)
 
{
 
  double A0= 373.15/(273.15 + celsius);
 
  double SUM = -7.90298 * (A0-1);
 
  SUM += 5.02808 * log10(A0);
 
  SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ;
 
  SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ;
 
  SUM += log10(1013.246);
 
  double VP = pow(10, SUM-3) * humidity;
 
  double T = log(VP/0.61078);   // temp var
 
  return (241.88 * T) / (17.558-T);
 
}
 
// delta max = 0.6544 wrt dewPoint()
 
// 5x faster than dewPoint()
 
// reference: http://en.wikipedia.org/wiki/Dew_point
 
double dewPointFast(double celsius, double humidity)
 
{
 
  double a = 17.271;
 
  double b = 237.7;
 
  double temp = (a * celsius) / (b + celsius) + log(humidity/100);
 
  double Td = (b * temp) / (a – temp);
 
  return Td;
 
}
 
Codul afisat mai sus realizeaza trimiterea datelor de la senzor in platforma online accesibila atat pe pc cat si pe smartphone sau pe tableta, precum si controlul direct al sistemului de incalzire, prin activarea modului auto din platforma online, care tinde sa mentina temperatura la cea setata de noi in variabila temp_dorita, in cazul de fata, 24 grade Celsius.
 
Asteptam cu interes sugestiile sau intrebarile voastre. Spor la lucru!
 
 
 
Smart Nation este platforma unde tehnologia va inspira pe voi toti. Sa va imaginati, sa inovati, sa creati!
 
Intra pe SmartNation.ro daca vrei sa fii informat in legatura cu noile gadget-uri, dar si pentru a putea afla cum functioneaza, ce fac si cum iti pot imbunatati viata de zi cu zi. 
 
 
Urmărește DESCOPERĂ.ro pe
Google News și Google Showcase
Cele mai noi articole
Motive să fim optimiști: Inovațiile din știință care fac lumea mai bună
Motive să fim optimiști: Inovațiile din știință care fac lumea mai bună
Noor Inayat Khan, prințesa spioană. A strigat „Libertate” înainte să fie împușcată în cap de naziști
Noor Inayat Khan, prințesa spioană. A strigat „Libertate” înainte să fie împușcată în cap de naziști
Oamenii de știință au dezvăluit coroana unei găuri negre pentru prima dată
Oamenii de știință au dezvăluit coroana unei găuri negre pentru prima dată
Clara Barton, creatoarea Crucii Roșii Americane. „Mi-aș dori doar să pot lucra pentru un scop anume”
Clara Barton, creatoarea Crucii Roșii Americane. „Mi-aș dori doar să pot lucra pentru un scop anume”
Maurice Jarre, unul dintre cei mai prolifici compozitori de muzică de film. Tatăl muzicianului Jean Michel Jarre
Maurice Jarre, unul dintre cei mai prolifici compozitori de muzică de film. Tatăl muzicianului Jean Michel Jarre
Jean Michel Jarre, Nașul muzicii electronice. „Pentru mine, muzica electronică este la fel ca gătitul: este o activitate organică senzuală în care poți amesteca ingrediente”
Jean Michel Jarre, Nașul muzicii electronice. „Pentru mine, muzica electronică este la fel ca gătitul: este o activitate ...
Ce întâmplă cu sănătatea oamenilor de peste 50 de ani care folosesc Internetul?
Ce întâmplă cu sănătatea oamenilor de peste 50 de ani care folosesc Internetul?
Femeile dorm mai puțin și se trezesc mai des decât bărbații
Femeile dorm mai puțin și se trezesc mai des decât bărbații
Test de cultură generală. Câte laturi are Marea Piramidă din Giza?
Test de cultură generală. Câte laturi are Marea Piramidă din Giza?
„Stocarea cuantică” este mai aproape de realitate după ce oamenii de știință au rezolvat o problemă veche de 10 ani
„Stocarea cuantică” este mai aproape de realitate după ce oamenii de știință au rezolvat o problemă veche de 10 ani
Al doilea vaccin împotriva variolei maimuței, aprobat de OMS
Al doilea vaccin împotriva variolei maimuței, aprobat de OMS
Chatbotul Google Gemini a primit o funcție de „memorie”
Chatbotul Google Gemini a primit o funcție de „memorie”
Record de turiști în Japonia! Cât au cheltuit cei 3,31 milioane de vizitatori?
Record de turiști în Japonia! Cât au cheltuit cei 3,31 milioane de vizitatori?
Controversa din jurul asasinării lui Kennedy. Cine l-a vrut mort şi ce rol are teoria lui Pacepa?
Controversa din jurul asasinării lui Kennedy. Cine l-a vrut mort şi ce rol are teoria lui Pacepa?
Dan Diaconescu vorbește, în premieră, despre morțile suspecte care au împărțit România în două | EXCLUSIV Altceva cu Adrian Artene
Dan Diaconescu vorbește, în premieră, despre morțile suspecte care au împărțit România în două | EXCLUSIV Altceva ...
1 din 10 copii, victimă a violenței în primele două luni ale anului școlar
1 din 10 copii, victimă a violenței în primele două luni ale anului școlar
Unde au dispărut grădinițele de stat din România?
Unde au dispărut grădinițele de stat din România?
Un studiu arată că oamenii poate absorbi vitamine direct din aer
Un studiu arată că oamenii poate absorbi vitamine direct din aer